#include <stdio.h>

struct stdio_dev
{
	int (*start)(struct stdio_dev *dev);	// 8
	int (*stop)(struct stdio_dev *dev);		// 8
};

struct stdio_dev1 
{
	int	flags;								// 4	

	int (*start)(struct stdio_dev1 *dev);	// 8
	int (*stop)(struct stdio_dev1 *dev);	// 8
};

struct stdio_dev2 
{
	int	flags;								// 4
	int	ext;								// 4

	int (*start)(struct stdio_dev2 *dev);	// 8
	int (*stop)(struct stdio_dev2 *dev);	// 8
};

struct stdio_dev3 
{
	int	flags;								// 4
	int	ext;								// 4
	int	eext;								// 4

	int (*start)(struct stdio_dev3 *dev);	// 8
	int (*stop)(struct stdio_dev3 *dev);	// 8
};

int main()
{
	printf("%ld\n",sizeof(char));					// 1
	printf("%ld\n",sizeof(short));					// 2
	printf("%ld\n",sizeof(int));					// 4
	printf("%ld\n",sizeof(long));					// 8
	printf("%ld\n",sizeof(float));					// 4
	printf("%ld\n",sizeof(double));					// 8
	printf("%ld\n",sizeof(long long));				// 8

	printf("%ld\n",sizeof(struct stdio_dev));		// 16
    printf("%ld\n",sizeof(struct stdio_dev1));		// 24
	printf("%ld\n",sizeof(struct stdio_dev2));		// 24
	printf("%ld\n",sizeof(struct stdio_dev3));		// 32

    return 0;
}
